home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / ant / antenna2 / stubmatc.bas < prev    next >
BASIC Source File  |  1986-08-10  |  2KB  |  58 lines

  1. 10 CLS
  2. 20 REM   05/15/86
  3. 30 T$="SINGLE STUB MATCHING":L=1:GOSUB 130
  4. 40 T$="(SHORT CIRCUIT STUB)":L=2:GOSUB 130
  5. 50 REM   AHMAD FAIZAL MOHD. ZAIN
  6. 60 PRINT:PRINT:PRINT
  7. 70 :
  8. 80 DEF FN MAG(X,Y)=SQR(X*X+Y*Y)
  9. 90 DEF FN ANG(X,Y)=ATN(Y/X)
  10. 100 PI=3.141592
  11. 110 GOTO 150
  12. 120 :
  13. 130 LOCATE L,(80-LEN(T$))/2+1:PRINT T$:RETURN
  14. 140 :
  15. 150 INPUT"ENTER WORKING FREQUENCY (MHz)";FREQ
  16. 160 INPUT"ENTER CHARACTERISTIC IMPEDANCE";Z0
  17. 170 INPUT"ENTER REAL PART OF LOAD IMPEDANCE";RL
  18. 180 INPUT"ENTER IMAG PART OF LOAD IMPEDANCE";XL
  19. 190 PRINT:PRINT
  20. 200 :
  21. 210 LAMBDA=300/FREQ
  22. 220 BETA=2*PI/LAMBDA
  23. 230 :
  24. 240 RL=RL/Z0:XL=XL/Z0               'NORMALISING
  25. 250 IF XL<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
  26. 260 PRINT USING"LOAD IMPEDANCE = ###.##";RL*Z0;:PRINT SIGN$;:PRINT USING "###.##";ABS(XL*Z0)
  27. 270 PRINT:PRINT
  28. 280 :
  29. 290 IF RL=1 THEN T=-XL/2:DISTANCE=(ATN(T)+PI)/(2*PI):GOTO 490
  30. 300 A=SQR(RL*((1-RL)^2+XL^2))
  31. 310 T1=(-XL+A)/(1-RL): T2=(-XL-A)/(1-RL)
  32. 320 IF T1>=0 THEN DISTANCE1=(ATN(T1))/(2*PI) ELSE DISTANCE1=(ATN(T1)+PI)/(2*PI)
  33. 330 IF T2>=0 THEN DISTANCE2=(ATN(T2))/(2*PI) ELSE DISTANCE2=(ATN(T2)+PI)/(2*PI)
  34. 340 D1=DISTANCE1*LAMBDA:D2=DISTANCE2*LAMBDA
  35. 350 :
  36. 360 B1=(RL*RL*T1-(1-XL*T1)*(XL+T1))/(RL*RL+(XL+T1)^2)
  37. 370 IF B1>=0 THEN LENGTH1=(ATN(1/B1))/(2*PI) ELSE LENGTH1=(PI+ATN(1/B1))/(2*PI)
  38. 380 B2=-B1:REM B2=(RL*RL*T2-(1-XL*T2)*(XL+T2))/(RL*RL+(XL+T2)^2)
  39. 390 IF B2>=0 THEN LENGTH2=(ATN(1/B2))/(2*PI) ELSE LENGTH2=(PI+ATN(1/B2))/(2*PI)
  40. 400 :
  41. 410 S1=LENGTH1*LAMBDA:S2=LENGTH2*LAMBDA
  42. 420 PRINT USING "FOR STUB LENGTH OF ##.###";S1;:PRINT USING ", DISTANCE FROM LOAD IS ##.###";D1;:PRINT" meters"
  43. 430 PRINT USING "STUB REACTANCE IS ####.##";B1*Z0
  44. 440 PRINT:PRINT
  45. 450 PRINT USING "FOR STUB LENGTH OF ##.###";S2;:PRINT USING ", DISTANCE FROM LOAD IS ##.###";D2;:PRINT" meters"
  46. 460 PRINT USING "STUB REACTANCE IS ####.##";B2*Z0
  47. 470 GOTO 530
  48. 480 :
  49. 490 B=(RL*RL*T-(1-XL*T)*(XL+T))/(RL*RL+(XL+T)*(XL+T))
  50. 500 IF B>=0 THEN LENGTH=(ATN(1/B))/(2*PI) ELSE LENGTH=(PI+ATN(1/B))/(2*PI)
  51. 510 PRINT USING "FOR STUB LENGTH OF ##.###";LENGTH;:PRINT USING ", DISTANCE FROM LOAD IS ##.###";DISTANCE;:PRINT" meters"
  52. 520 PRINT USING "STUB IMPEDANCE IS ####.##";B*Z0
  53. 530 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":L=23:GOSUB 130
  54. 540 AN$=INKEY$
  55. 550 IF AN$="Y" OR AN$="y" THEN RUN
  56. 560 IF AN$="N" OR AN$="n" THEN END
  57. 570 GOTO 530
  58.